Embedded systems are used in a variety of modern electro-mechanical systems. These systems are often configured to perform one or more specialized tasks associated with the overall system in which they are deployed. In many cases, these embedded systems perform data retrieval and archiving functions associated with a larger system. For example, an embedded system may include an information management system programmed to store parameters or data, perform calculations using the parameters or data, and create trends, reports, and histograms for the data. The information management system may also be responsive to a triggering event or schedule. Embedded systems are often highly specialized to the systems in which they are deployed.
In order to minimize development and manufacturing costs, generic information management systems have been developed that are compatible with a variety of different systems. Once deployed in a system, these generic information management systems may be customized using processor-executable embedded software loaded into a memory device associated with the information management system. This embedded software may contain instructions for monitoring virtually every operation associated with the system. By customizing operations of each embedded system at the software level, the same information management system hardware may be employed in a variety of applications, allowing for mass-production of the generic hardware. Further, because the functionality of the system is defined almost exclusively in software, updates, modifications, and upgrades may be made to the system without necessitating replacement of the system hardware, thereby reducing repair and upgrade costs.
Because software for embedded systems may define virtually all functional aspects associated with the system, the design of software for these systems may be complicated and time intensive, and may require highly specialized knowledge of software development techniques. For example, embedded software associated with engine monitoring may comprise hundreds of thousands of lines of code, and the total embedded software on machines can be millions of lines of code.
One system for simplifying the design of software for these types of generic hardware systems focuses on methods to configure a machine electronic control module (ECM), while minimizing inventory requirements and reducing the total production time. For example, U.S. Pat. No. 6,529,805 to Aldrich, III, et al. (the '805 patent) discloses a method and apparatus for configuring an ECM for multiple automobile configurations. The disclosed apparatus includes an automobile identifier identifying one of the multiple automobile configurations, and a memory configured to store multiple configuration data sets, with each of the multiple data sets corresponding to one of the multiple configurations. The apparatus also includes a processor configured to receive the automobile identifier and select one of multiple data sets based at least in part upon the automobile identifier for execution of automobile functions controlled by the automobile ECM.
Although the method and apparatus for configuring an ECM for multiple automobile configurations described in the '805 patent allows a single hardware and software module to be used on multiple machines, the method and apparatus of the '805 patent do not allow for easy upgrades. Specifically, because the '805 patent requires the different configuration files to be loaded onto the ECM module during manufacture of the machine, the ECM module cannot be updated to reflect modifications to the machine, such as, for example, the addition or subtraction of a sensor, the addition of a new type of sensor, or a change in required performance of the machine or a sensor. Also, the ECM module has a set of configurations, and the calculations in a specific configuration cannot be changed without rewriting the entire configuration. Additionally, changes are limited to sets of vehicles, and cannot be customized at a low cost for one specific machine.
The disclosed system and method for updating information management system configurations are directed to improvements in the existing technology.